package com.java_foundation.base_demo.test_1;

/**
 * @program: java_foundation
 * @description: 子类
 * 先初始化父类 Father
 * 再初始化子类 Son
 * 类初始化  clinit
 *   1）静态类变量赋值 j = method()
 *   2）父类的静态代码块
 * 类的实例化方法 init  对象创建几次就走几次
 *   1）super()(最前)
 *   2）非静态变量赋值 i = test()
 *   3)子类的非静态代码块
 *   4）子类的无参构造（最后）
 *
 * @author: xiongbangwen <Email>xiongbangwen@163.com</Email>
 * @create: 2020-05-30 22:32
 **/
public class Son extends Father{
    private int i = test();
    private static int j = method();
    static {
        System.out.print("6)");
    }
    Son(){
//        super(); //写不写都在，在子类构造器一定会调用父类的构造器
        System.out.print("7)");
    }
    {
        System.out.print("8)");
    }

    public int test() {
        System.out.print("9)");
        return 1;
    }
    public static int method() {
        System.out.print("10)");
        return 1;
    }

}
